home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 April: Mac OS SDK / Dev.CD Apr 00 SDK1.toast / Development Kits / Mac OS / AppleShare IP 6.3 SDK / ASIP User Authentication Module / Server UAM SDK / Headers / OAM.h next >
Encoding:
C/C++ Source or Header  |  1999-11-01  |  6.0 KB  |  217 lines  |  [TEXT/CWIE]

  1. /*
  2.     File:        OAM.h
  3.  
  4.     Contains:    AppleShare Registry API definition
  5.  
  6.     Copyright:    © 1998 by Apple Computer, Inc., all rights reserved.
  7. */
  8.  
  9. #ifndef __OAM__
  10. #define __OAM__
  11.  
  12. #ifndef __OAMTYPES__
  13. #include "OAMTypes.h"
  14. #endif
  15.  
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19.  
  20. #if PRAGMA_ALIGN_SUPPORTED
  21. #pragma options align=mac68k
  22. #endif
  23. /*******************************************************************************\
  24. *
  25. *    Initialization functions
  26. *    
  27. \*******************************************************************************/
  28.  
  29. OAMStatus OAMInitialize(int numSessions, int maxNumCalls, OAMBufferDescriptor* buffer_i,OAMOption* flags_i);
  30. OAMStatus OAMDeInitialize();
  31.  
  32. /*******************************************************************************\
  33. *
  34. *    Lookup functions
  35. *    
  36. \*******************************************************************************/
  37.  
  38. OSStatus OAMFindServer(OAMServerLocator *locator_i,
  39.                 OAMBufferDescriptor *buffer_o,                                
  40.                 int *numInBuffer_o,                                                     
  41.                 int *numFound_o,                                                            
  42.                 OAMOption *options);
  43.  
  44. OAMStatus OAMFindServerExtract(OAMBufferDescriptor *buffer_i, 
  45.                 int index_i, 
  46.                 OAMServerSpec* spec_o);
  47.  
  48. /*******************************************************************************\
  49. *
  50. *    Session functions
  51. *    
  52. \*******************************************************************************/
  53.  
  54. int    OAMGetSize(int numSessions, int maxNumCalls);
  55.  
  56.  
  57. OSStatus OAMGetLocalServerStatus(UInt32 *serverStatus);
  58.  
  59. enum {     kOAMOptionMemory = ' mem' };
  60. OAMStatus OAMOpenSession(OAMServerSpec* server_i,
  61.                          OAMSessionID* sessID_o,
  62.                          OAMOption *options);
  63.  
  64. OAMStatus OAMCloseSession(OAMSessionID sessID_o,
  65.                          OAMOption *options);
  66.  
  67. OAMStatus OAMAuthenticateSession(OAMSessionID sessID, 
  68.                         OAMObjectSpec* user, 
  69.                         OAMKey* key, 
  70.                         OAMOption *options);
  71.  
  72. /*******************************************************************************\
  73. *
  74. *    Object functions
  75. *    
  76. \*******************************************************************************/
  77.  
  78. OAMStatus OAMCreateObject(OAMSessionID sessID, 
  79.                         OAMObjectSpec* object, 
  80.                         OAMAttributeDescriptor *attr, 
  81.                         OAMOption *options);
  82.  
  83. OAMStatus OAMDeleteObject(OAMSessionID sessID, 
  84.                         OAMObjectSpec* object,
  85.                         OAMOption *options);
  86.  
  87. OAMStatus OAMGetAttribute(OAMSessionID sessID,
  88.                         OAMObjectSpec* object, 
  89.                         OAMAttributeDescriptor *attr, 
  90.                         OAMOption *options);
  91.  
  92. OAMStatus OAMSetAttribute(OAMSessionID sessID,
  93.                         OAMObjectSpec* key,
  94.                         OAMAttributeDescriptor *attr, 
  95.                         OAMOption *options);
  96.  
  97. OAMStatus OAMDeleteAttribute(OAMSessionID sessID,
  98.                         OAMObjectSpec* object, 
  99.                         OAMAttributeDescriptor *attr,
  100.                         OAMOption *options);
  101.  
  102. /*******************************************************************************\
  103. *
  104. *    Group functions
  105. *    
  106. \*******************************************************************************/
  107.  
  108. OAMStatus OAMIsGroupMember(OAMSessionID sessID,
  109.                         OAMObjectSpec* group,
  110.                         OAMObjectSpec* member,
  111.                         Boolean *isMember,
  112.                         OAMOption *options);
  113.  
  114. OAMStatus OAMAddGroupMember(OAMSessionID sessID,
  115.                         OAMObjectSpec* group,
  116.                         OAMObjectSpec* newMember,
  117.                         OAMOption *options);
  118.  
  119. OAMStatus OAMRemoveGroupMember(OAMSessionID sessID,
  120.                         OAMObjectSpec* group,
  121.                         OAMObjectSpec* oldMember,
  122.                         OAMOption *options);
  123.  
  124. /*******************************************************************************\
  125. *
  126. *    Iteration functions
  127. *    
  128. \*******************************************************************************/
  129.  
  130. OAMStatus OAMIterate(OAMSessionID sessID,
  131.                         OAMIterationSpec* iterSpec,
  132.                         OAMAttributeDescriptor *desc,
  133.                         OAMBufferDescriptor *buffer,
  134.                         OAMOption *options);
  135.  
  136. OAMStatus OAMParseAttributeBuffer(OAMBufferDescriptor *buffer, OAMAttributeDescriptor *desc, OAMParseInfo* parseInfo);
  137.  
  138. OAMStatus OAMParseGetNextObject(OAMParseInfo* parseInfo, OAMObjectSpec* object);
  139.  
  140. OAMStatus OAMParseGetNextAttribute(OAMParseInfo* parseInfo, OAMAttributeDescriptor* attr);
  141.  
  142.                         
  143. /*******************************************************************************\
  144. *
  145. *    Notification functions
  146. *    
  147. \*******************************************************************************/
  148.  
  149. OAMStatus OAMSetNotificationProc(OAMSessionID sessID,
  150.                         OAMNotificationUPP procPtr,
  151.                         OAMOption *options);
  152.  
  153. OAMStatus OAMRequestNotification(OAMSessionID sessionID,
  154.                         OAMNotificationSpec *notificationSpec,
  155.                         OAMOption *options);
  156.  
  157. // Remote sessions must call this on a separate thread if they want notifications
  158. // when no other calls are pending.  This call returns when OAMDeInitialize() is called.
  159. // NOTE: This call is _not_ needed locally!
  160. OAMStatus OAMBecomeHelperThread();
  161.  
  162. /*******************************************************************************\
  163. *
  164. *    Service functions
  165. *    
  166. \*******************************************************************************/
  167.  
  168. OAMStatus OAMStartService(OAMSessionID sessID, 
  169.                         OAMObjectSpec* objectSpec, 
  170.                         OAMOption *options);
  171.                         
  172. OAMStatus OAMStopService(OAMSessionID sessID, 
  173.                         OAMObjectSpec* objectSpec, 
  174.                         OAMOption *options);
  175.  
  176. OSStatus OAMLaunchLocalServer(void);
  177.  
  178. /*******************************************************************************\
  179. *
  180. *    UAM functions
  181. *    
  182. \*******************************************************************************/
  183.  
  184. enum { kOAMAuthLogin, kOAMAuthLoginContinue, kOAMAuthChangeKey, kOAMAuthChangeKeyContinue };
  185. enum { kOAMAuthStream = 1 };
  186.  
  187. typedef struct OAMAuthenticateInfo OAMAuthenticateInfo;
  188. struct OAMAuthenticateInfo {
  189.     OAMObjectSpec* objectSpec;
  190.     UInt16 flags;  
  191.     UInt16 stage;  // intialial set to zero
  192.     OAMStatus objStatus;
  193.     UInt8 uam[64];
  194.     UInt8 reserved[64];
  195. };
  196.  
  197. OAMStatus OAMAuthenticateObject(OAMSessionID sessID, 
  198.                         OAMAuthenticateInfo *authInfo, 
  199.                         OAMBufferDescriptor* input, 
  200.                         OAMBufferDescriptor* output,
  201.                         OAMOption *options);
  202.                         
  203. OAMStatus OAMChangeObjectKey(OAMSessionID sessID, 
  204.                         OAMAuthenticateInfo *authInfo, 
  205.                         OAMBufferDescriptor* input,
  206.                         OAMBufferDescriptor* output,
  207.                         OAMOption *options);
  208.  
  209. #if PRAGMA_ALIGN_SUPPORTED
  210. #pragma options align=reset
  211. #endif
  212.  
  213. #ifdef __cplusplus
  214. }
  215. #endif
  216.  
  217. #endif    /* __OAM__ */